package com.yourcompany.api.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@EqualsAndHashCode(callSuper = true)
@TableName("charging_order")
@Schema(description = "充电订单")
public class ChargingOrder extends BaseEntity {
    
    @Schema(description = "订单编号")
    private String orderNo;
    
    @Schema(description = "用户ID")
    private Long userId;
    
    @Schema(description = "充电站ID")
    private Long stationId;
    
    @Schema(description = "充电枪ID")
    private Long gunId;
    
    @Schema(description = "开始时间")
    private LocalDateTime startTime;
    
    @Schema(description = "结束时间")
    private LocalDateTime endTime;
    
    @Schema(description = "充电时长(分钟)")
    private Integer duration;
    
    @Schema(description = "充电电量(度)")
    private BigDecimal power;
    
    @Schema(description = "订单金额")
    private BigDecimal amount;
    
    @Schema(description = "电费单价")
    private BigDecimal price;
    
    @Schema(description = "服务费")
    private BigDecimal serviceFee;
    
    @Schema(description = "停车费")
    private BigDecimal parkingFee;
    
    @Schema(description = "总金额")
    private BigDecimal totalAmount;
    
    @Schema(description = "支付方式")
    private String paymentMethod;
    
    @Schema(description = "支付时间")
    private LocalDateTime paymentTime;
    
    @Schema(description = "状态：0-创建 1-充电中 2-已完成 3-已取消")
    private Integer status;
    
    @Schema(description = "创建人ID")
    private Long creatorId;
    
    @Schema(description = "修改人ID")
    private Long modifierId;
    
    @Schema(description = "支付订单ID")
    private Long payOrderId;
    
    @Schema(description = "备注")
    private String remark;
} 